#pragma once
#include <iostream>
#include <string>
#include <fstream>
// 工具类
class Util
{
public:
    // 返回文件正文内容的大小
    static int FileSize(std::string &filename)
    {
        // 二进制方式打开文件
        std::ifstream in(filename, std::ios::binary);
        if (!in.is_open())
        {
            return -1;
        }
        // 把pos指针移动到文件的末尾的后一位
        in.seekg(0, in.end);
        // 获取pos的大小
        int filesize = in.tellg();
        // 再把pos指针移动到文件的开头
        in.seekg(0, in.beg);
        in.close();
        return filesize;
    }
    static bool ReadFile(std::string filename, std::string *out)
    {
        // version2
        // 先获取对应文件大小
        int filesize = FileSize(filename);
        if (filesize > 0)
        {
            std::ifstream in(filename);
            if(!in.is_open())
            {
                //文件打开失败
                return false;
            }
            out->resize(filesize);
            in.read((char *)(out->c_str()), filesize);
            in.close();
            return true;
        }
        else
        {
            return false;
        }
        // //version1:但是无法读取图片等信息
        // std::ifstream readfile(filename);//从文件读取内容
        // //判断文件是否打开
        // if(!readfile.is_open())
        // {
        //     return false;
        // }
        // //文件打开
        // std::string line;
        // while(getline(readfile,line))
        // {
        //     *out+=line;
        // }
        // //关闭文件
        // readfile.close();
        // return true;
    }
};